# 作者: 赵若云
# 2025年02月21日11时06分21秒
# 3478783573@qq.com
import os


def use_open_r():
    # 汉字编码，Window、Linux（统信，Ubuntu，centos）统一了默认用UTF-8
    # 默认GBK文字乱码，用UTF-8
    file = open('file1', 'r', encoding='utf-8')  # 路径用的是相对路径
    txt = file.read()  # 读到的是字符串
    print(txt)
    file.close()  # 文件对象占的是内存空间，所以不用的时候要手动关闭，以免消耗内存


def use_open_rw():
    """
    使用r+
    :return:
    """
    file = open('file1', 'r+', encoding='utf-8')  # 路径用的是相对路径
    nums = file.write('今天是个好天气')  # 一个字是三个字节
    print(nums)
    file.close()


def use_open_a():
    """
    以追加方式写入，只能写
    :return:
    """
    file = open('file1', 'a', encoding='utf-8')
    nums = file.write('HELLO')  # 一个字是三个字节
    print(nums)
    file.close()


def use_open_w():
    """
    文件不存在就会创建，但不会创建文件夹
    / 路径
    绝对路径 windows从盘符开始的，mac和Linux都是/开头，就是绝对路径
    相对路径 相对于当前进程的路径，写代码，大家都会用相对路径
    :return:
    """
    # 最好写成"/","\\"
    # “/” 更推荐
    file = open('dir1/dir2/file3.txt', 'w', encoding='utf-8')
    print(os.getcwd())  # 查看当前的路径
    file.close()


def use_readline():
    """
    每次读一行
    :return:
    """
    file = open('file1', 'r', encoding='utf-8')
    while True:  # 读取大文件用循环
        # txt = file.readline() #每次读一行
        txt = file.read(5)  # 每次读5个字符
        if not txt:
            break
        print(txt, end='')


if __name__ == '__main__':
    # use_open_r()
    # use_open_rw()
    # use_open_a()
    # use_open_w()
    use_readline()
